(Yes I combined some ideas I saw above)