mostly finished, added example