finished refactored Component 'prototype' implementation (needs testing)