updated with more ideas