Initial implementation of simulator API

Using interfaces and API nested classes
for implementation of random cluster state