WIP, broken API & code, should restart from scratch