Attempt at Component based development