more options, little cleaner, ugly