added skeleton functions for online and offline