step one done, most bugs worked out