refactor 3
simple usage example
refactor 4:

removed threads
added: update, draw