Add functionality. Could look neater, but basically complete?