Fixed recursion error
Added colours and overloaded count method. Converted some defs to lazy vals.