New methods written, need to check the code again.