scope, constructor, separation of concern