collect logic and properties into a singleton object.