Initial commit. Refactored too.