Finishing basic interface, but some bugs remain.