You might say this is obvious, don't call the accel functions before init.. I think you should build in some methods to prevent crashes and notify the user etc.. Took a long time to find this issue because I was calling readX16() as part of some initialization code in a static object, constructed before setup, where init was called. Really this is my fault but I mention it here so you might help others in the future.