implementing core structure