added greyscale support, inital demo function, comments