all options working though need cleaup