hardcore functions