added factory, updated names