custom factory & aspect

custom factory & aspect