Update with more options and new, cleaner structure