better attempt - removed a lot of complexity