Add readme, more refactoring