c
slightly changed the design