Made component properly abstract