More specification, still a lot WIP