implement abstract fill method