started laying out interfaces and overall architecture