Initial
Some refactoring p.1