Refactor code some more + rewrite readme and example