Further stylized interface, separated logic into more modules