sorry for putting all in one single commit :)