Add functionality, improve everything, as usual