switched to own runnable, fixed several bugs, refactored