Adding factory method pattern.

Signed-off-by: Tomasz Kamiński <kaminski.tomasz.a@gmail.com>