base functionality implemented, stable