added the things! optimising to be done later!