first functional prototype, basic usage