added decorator
got rid of gross stuff
fixed merge conflicts