Finish design and some functionality fixes