using static factory