restructure into package, unit test timout and argumentin decorators