setup some interfaces & skeleton codes for Adrian's project