start to work on geo and shader classes. unfinished