developing code skeleton, adding design ideas