compilable solution