mainly object design but also other things