added more functionality under the hood