finished basic prototype