start with a nice architecture