first full working version