Add the ability to remove systems(not during runtime)
add validations
-static system cannot depend on non-static system
-add and fix previouse tests