Final version of methods I hope some minor changes will be made though