interface
first valid implementation of AI