Changed component constructors and static function implementations to not use std::function