This checkin solves #2, #3, #4