This methods needs unit testing