adjusted interface, added streaming