two semi working versions