New ridiculously simple component model