added private constructor