add an interface for a general abstraction of a system