Add tests and implementation for systems