Extracted member template
Refactored some private members to a template
Added som clarifying comments
Added some more clarifying comments
Removed private setup member