moved method implementation to source