Refactor

Use Struct, more OO