More refactor & WIP