most of the basics now implemented.