add private methods