abstracted component initialization functions