added a nice interface